<?php 
	/**
	*
	*/
	header("Content-Type:text/html;charset=utf-8");
	class Base
	{

		public function pri($arr){
			echo '<pre>';
			print_r($arr);
			echo '</pre>';
		}

		public function testCrypt($str){
			//二参有待研究

			// 两字符 salt
			if (CRYPT_STD_DES == 1)
			{
			echo "Standard DES: ".crypt($str,'st')."\n<br>";
			}
			else
			{
			echo "Standard DES not supported.\n<br>";
			}

			// 4 字符 salt
			if (CRYPT_EXT_DES == 1)
			{
			echo "Extended DES: ".crypt($str,'_S4..some')."\n<br>";
			}
			else
			{
			echo "Extended DES not supported.\n<br>";
			}

			//以 $1$ 开始的 12 字符
			if (CRYPT_MD5 == 1)
			{
			echo "MD5: ".crypt($str,'$1$somethin$')."\n<br>";
			}
			else
			{
			echo "MD5 not supported.\n<br>";
			}

			// 以 $2a$ 开始的 Salt。双数字的 cost 参数：09. 22 字符
			if (CRYPT_BLOWFISH == 1)
			{
			echo "Blowfish: ".crypt($str,'$2a$09$anexamplestringforsalt$')."\n<br>";
			}
			else
			{
			echo "Blowfish DES not supported.\n<br>";
			}

			// 以 $5$ 开始的 16 字符 salt。周长的默认数是 5000。
			if (CRYPT_SHA256 == 1)
			{
			echo "SHA-256: ".crypt($str,'$5$rounds=5000$anexamplestringforsalt$')."\n<br>"; }
			else
			{
			echo "SHA-256 not supported.\n<br>";
			}

			// 以 $5$ 开始的 16 字符 salt。周长的默认数是 5000。
			if (CRYPT_SHA512 == 1)
			{
			echo "SHA-512: ".crypt($str,'$6$rounds=5000$anexamplestringforsalt$');
			}
			else
			{
			echo "SHA-512 not supported.";
			}
		}

		public function testFprintf(){
			//使用 printf() 来演示fprintf()所有可能的格式值：
			$num1 = 123456789;
			$num2 = -123456789;
			$char = 50; // ASCII 字符 50 是 2

			// 注释：格式值 "%%" 返回百分号
			printf("%%b = %b <br>",$num1); // 二进制数
			printf("%%c = %c <br>",$char); // ASCII 字符
			printf("%%d = %d <br>",$num1); // 带符号的十进制数
			printf("%%d = %d <br>",$num2); // 带符号的十进制数
			printf("%%e = %e <br>",$num1); // 科学计数法（小写）
			printf("%%E = %E <br>",$num1); // 科学计数法（大写）
			printf("%%u = %u <br>",$num1); // 不带符号的十进制数（正）
			printf("%%u = %u <br>",$num2); // 不带符号的十进制数（负）
			printf("%%f = %f <br>",$num1); // 浮点数（视本地设置）
			printf("%%F = %F <br>",$num1); // 浮点数（不视本地设置）
			printf("%%g = %g <br>",$num1); // 短于 %e 和 %f
			printf("%%G = %G <br>",$num1); // 短于 %E 和 %f
			printf("%%o = %o <br>",$num1); // 八进制数
			printf("%%s = %s <br>",$num1); // 字符串
			printf("%%x = %x <br>",$num1); // 十六进制数（小写）
			printf("%%X = %X <br>",$num1); // 十六进制数（大写）
			printf("%%+d = %+d <br>",$num1); // 符号说明符（正）
			printf("%%+d = %+d <br>",$num2); // 符号说明符（负）
		}
	}
 ?>
